package icu.qx.gbs.service;

import icu.qx.gbs.domain.GbsGood;

import java.util.List;

/**
 * 物品 通过 is_material 区分物料和产品Service接口
 *
 * @author yong
 * @date 2024-06-06
 */
public interface IGbsGoodService {
    /**
     * 查询物品 通过 is_material 区分物料和产品
     *
     * @param pdCode 物品 通过 is_material 区分物料和产品主键
     * @return 物品 通过 is_material 区分物料和产品
     */
    public GbsGood selectGbsGoodByPdCode(String pdCode);

    public List<GbsGood> selectGbsGoodByRouteCode(String routeCode);

    /**
     * 查找没有工艺路线的产品
     */
    List<GbsGood> selectGbsGoodNoRoute();

    public List<GbsGood> selectGbsGoodListByPdCode(String[] pdCodes);

    /**
     * 查询物品 通过 is_material 区分物料和产品列表
     *
     * @param gbsGood 物品 通过 is_material 区分物料和产品
     * @return 物品 通过 is_material 区分物料和产品集合
     */
    public List<GbsGood> selectGbsGoodList(GbsGood gbsGood);

    /**
     * 新增物品 通过 is_material 区分物料和产品
     *
     * @param gbsGood 物品 通过 is_material 区分物料和产品
     * @return 结果
     */
    public GbsGood insertGbsGood(GbsGood gbsGood);

    /**
     * 修改物品 通过 is_material 区分物料和产品
     *
     * @param gbsGood 物品 通过 is_material 区分物料和产品
     * @return 结果
     */
    public GbsGood updateGbsGood(GbsGood gbsGood);

    int updateGbsGoodRoute(List<GbsGood> gbsGoods);

    /**
     * 批量删除物品 通过 is_material 区分物料和产品
     *
     * @param pdCodes 需要删除的物品 通过 is_material 区分物料和产品主键集合
     * @return 结果
     */
    public int deleteGbsGoodByPdCodes(String[] pdCodes);

    /**
     * 删除物品 通过 is_material 区分物料和产品信息
     *
     * @param pdCode 物品 通过 is_material 区分物料和产品主键
     * @return 结果
     */
    public int deleteGbsGoodByPdCode(String pdCode);
}
